#
# Licensed to Selene developers ('Selene') under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# Selene licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

Import('env')

def to_bytes(input):
  output = ""
  d = [str(ord(i)) for i in input]
  block_size = 20
  while len(d):
    output += ", ".join(d[:block_size])
    output += ",\n        "
    d = d[block_size:]
  return output

def certs_to_header(target, source, env):
    target[0].remove()
    t = open(target[0].get_path(), 'wb')
    t.write("/* GENERATED TRUSTED CERTIFICATE HEADER --- DO NOT EDIT */\n\n""")
    for f in source:
        data = f.get_contents()
        t.write("static const char const TODO_FIX_THIS[] = {\n%s};\n" % to_bytes(data));
    t.close()
    return None

env.Append(BUILDERS = {'CertificateHeader' : Builder(action = certs_to_header, suffix='.h', src_suffix='.crt')})



